In multicast communication, data packets are delivered over a packet network to a specified group of destination computers simultaneously. In network-assisted multicast, the packet source transmits only a single copy of the packet that is to be distributed, with a multicast destination address in the packet header. Switches in the network automatically create multiple copies of the packet and forward the copies only to network segments that contain members of the multicast group, or to the group members themselves. (The term “switch” in the context of the present description and in the claims refers to any network element having multiple network interfaces and logic for forwarding packets between the interfaces, including, without limitation, routers, bridges and gateways, for example.)
Multicast is most commonly used for streaming of digital media and other data to groups of subscribers. In such applications, reliable transmission is generally not required or is handled at the application level between the source and destination computers to the extent that it is needed. The term “reliable” is used here in its conventional sense to mean that recipients of the packets acknowledge receipt, and packets are automatically retransmitted when a positive acknowledgment is not received, so that the source computer is assured that once a packet is transmitted to the network, it will be delivered to the destination computer (in the case of unicast) or to all destination computers in the designated multicast group. Standard multicast protocols, such as Internet Protocol (IP) multicast, operate on this unreliable model.
In some applications, however, members of a communication group need to verify that all multicast packets will be delivered to all group members. For example, U.S. Patent Application Publication 2017/0063613, whose disclosure is incorporated herein by reference, describes an aggregation protocol, referred to as referred the “Scalable Hierarchical Aggregation Protocol” (SHArP), which enables a switch in a data network to mediate data exchanges among network elements. A processor organizes the network elements into a hierarchical tree having a root node network element, vertex node network elements, and child node network elements that include leaf node network elements. The leaf node network elements originate aggregation data and transmit the aggregation data to respective parent vertex node network elements. The vertex node network elements combine the aggregation data from at least a portion of the child node network elements, and transmit the combined aggregation data from the vertex node network elements to parent vertex node network elements. Multicast operations in this network can be advantageously performed using a reliable multicast service.
Network-based reliable multicast services that are known in the art, however, suffer from problems of latency, high bandwidth consumption, and poor scalability that have limited their practical usefulness. A number of attempts have been made to alleviate these problems.
For example, U.S. Patent Application Publication 2006/0114848 describes a method for reliable multicast in which multiple multicast acknowledgements can be merged into a single multicast acknowledgement, which is said to reduce traffic and reduce logic complexity. An intermediate node that receives multiple multicast acknowledgements merges the multiple acknowledgements into a single acknowledgement, and then supplies the single merged acknowledgment to the multicast source. Encoding of the single merged acknowledgement conveys to the source which of the multicast targets successfully received (or which failed to receive) the multicast information.
As another example, U.S. Pat. No. 7,936,753 describes a system for transmitting a multicast message with one or more packets. The system includes an adapter including an entry port to receive the multicast message from a source for transmission to a plurality of destinations; one or more egress ports of the adapter that transmit one or more packets of the multicast message to the plurality of destinations and receive acknowledgement for the one or more packets from the one or more destinations; and a message manager that monitors the delivery status for one or more packets to the plurality of destinations without using a plurality of dedicated individual connections between each of the plurality of destinations and the source.